/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import utn.tsb.tej.world_logic.CardType;
import utn.tsb.tej.world_logic.Color;
import utn.tsb.tej.world_logic.Continent;
import utn.tsb.tej.world_logic.Country;
import utn.tsb.tej.world_logic.Objective;
import utn.tsb.tej.world_logic.ObjectiveCard;
import utn.tsb.tej.world_logic.ObjectiveConquer;
import utn.tsb.tej.world_logic.ObjectiveEliminate;
import utn.tsb.tej.world_logic.Situation;
import utn.tsb.tej.world_logic.SituationBorder;
import utn.tsb.tej.world_logic.SituationClassic;
import utn.tsb.tej.world_logic.SituationCrisis;
import utn.tsb.tej.world_logic.SituationExtraArmies;
import utn.tsb.tej.world_logic.SituationExtraDice;
import utn.tsb.tej.world_logic.SituationRest;
import utn.tsb.tej.world_logic.World;
import csm.uttils.Archive;
import csm.uttils.generics.Roster;

/**
 *
 * @author Gaston M. Quiroga <gaston.mauricio.quiroga@gmail.com>
 */
public class Loader {

    static Roster<Country> countries = new Roster<Country>();
    static Roster<Continent> continents = new Roster<Continent>();
    static Roster<ObjectiveCard> objectiveCards = new Roster<ObjectiveCard>();
    static Roster<Situation> situations = new Roster<Situation>();
    static World world;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception {
        createContinents();
        loadCountries();
        continentstoString();
        setRelations();
        createObjectives();
        createSituation();
        world = new World(null, continents, situations, objectiveCards);
        saveObject(world, "tjFiles/World.wtj");

    }

    public static void loadCountry(String nombre, String codeRGB, String continente, String tipo) throws Exception {
        loadCountry(nombre, codeRGB, continente, tipo, 0, 0);
    }

    public static void loadCountry(String nombre, String codeRGB, String continente, String tipo, int x, int y) throws Exception {
        Country country = new Country();
        Color color = new Color(codeRGB);
        int[] typeValues = new int[1];
        if (tipo.compareToIgnoreCase("aire") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.AIR;
        } else if (tipo.compareToIgnoreCase("agua") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.WATER;
        } else if (tipo.compareToIgnoreCase("tierra") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.EARTH;
        } else if (tipo.compareToIgnoreCase("canje") == 0) {
            typeValues = new int[3];
            typeValues[0] = CardType.AIR;
            typeValues[1] = CardType.EARTH;
            typeValues[2] = CardType.WATER;
        } else if (tipo.compareToIgnoreCase("comodin") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.JOKER;
        }
        CardType type = new CardType(typeValues);

        country.setName(nombre);
        country.setType(type);
        country.setColor(color);
        country.setxPosition(x);
        country.setyPosition(y);

        countries.addInOrder(country);
        getContinentByName(continente).getCountries().addInOrder(country);
        System.out.println(country.getName() + " added to " + continente);
    }

    public static void loadContinents(String path) {//"tjFiles\\continents.ctj"
        Archive archive = new Archive(path);
        continents = (Roster<Continent>) archive.readRoster();
    }

    private static Country getCountryByName(String name) throws Exception {
        Country country = null;
        for (int i = 0; i < countries.count(); i++) {
            if (countries.getElementInPosition(i).getName().compareToIgnoreCase(name) == 0) {
                country = countries.getElementInPosition(i);
                break;
            }
        }
        if (country == null) {
            System.out.println("ESTO ES UNA CAGADA: " + name);
            throw new Exception();
        }
        return country;
    }

    private static Continent getContinentByName(String name) throws Exception {
        Continent continent = null;
        for (int i = 0; i < continents.count(); i++) {
            if (continents.getElementInPosition(i).getName().compareToIgnoreCase(name) == 0) {
                continent = continents.getElementInPosition(i);
                break;
            }
        }
        if (continent == null) {
            System.out.println("ESTO ES UNA CAGADA: " + name);
            throw new Exception();
        }
        return continent;
    }

    private static void loadCountries() throws Exception {
        loadCountry("Alaska", "#000000", "Norteamerica", "comodin", 65, 53);
        loadCountry("Albania", "#0239E0", "Europa", "comodin", 551, 250);
        loadCountry("Alemania", "#0473C0", "Europa", "comodin", 453, 228);
        loadCountry("Angola", "#06ADA0", "Africa", "comodin", 539, 431);
        loadCountry("Arabia", "#08E780", "Asia", "aire", 604, 348);
        loadCountry("Argentina", "#0B2160", "Sudamerica", "canje", 170, 513);
        loadCountry("Australia", "#0D5B40", "Oceania", "aire", 693, 473);
        loadCountry("Bielorrusia", "#0F9520", "Europa", "aire", 530, 123);
        loadCountry("Bolivia", "#11CF00", "Sudamerica", "aire", 156, 463);
        loadCountry("Brazil", "#1408E0", "Sudamerica", "aire", 200, 440);
        loadCountry("California", "#1642C0", "Norteamerica", "aire", 76, 238);
        loadCountry("Canada", "#187CA0", "Norteamerica", "aire", 76, 101);
        loadCountry("Chechenia", "#1AB680", "Asia", "aire", 621, 102);
        loadCountry("Chicago", "#1CF060", "Norteamerica", "aire", 186, 179);
        loadCountry("Chile", "#1F2A40", "Sudamerica", "aire", 131, 478);
        loadCountry("China", "#216420", "Asia", "aire", 653, 173);
        loadCountry("Chukchi", "#239E00", "Asia", "canje", 683, 67);
        loadCountry("Colombia", "#25D7E0", "Sudamerica", "aire", 141, 390);
        loadCountry("Corea", "#2811C0", "Asia", "aire", 706, 212);
        loadCountry("Croacia", "#2A4BA0", "Europa", "aire", 484, 281);
        loadCountry("Cuba", "#2C8580", "Centroamerica", "aire", 210, 260);
        loadCountry("Egipto", "#2EBF60", "Africa", "aire", 472, 382);
        loadCountry("El Salvador", "#30F940", "Centroamerica", "aire", 164, 311);
        loadCountry("Espana", "#333320", "Europa", "aire", 384, 310);
        loadCountry("Etiopia", "#356D00", "Africa", "aire", 470, 412);
        loadCountry("Filipinas", "#37A6E0", "Oceania", "aire", 712, 400);
        loadCountry("Finlandia", "#39E0C0", "Europa", "aire", 485, 121);
        loadCountry("Florida", "#3C1AA0", "Norteamerica", "agua", 154, 212);
        loadCountry("Francia", "#3E5480", "Europa", "agua", 419, 264);
        loadCountry("Gran Bretana", "#408E60", "Europa", "agua", 406, 205);
        loadCountry("Groenlandia", "#42C840", "Norteamerica", "agua", 257, 43);
        loadCountry("Honduras", "#450220", "Centroamerica", "agua", 143, 302);
        loadCountry("India", "#473C00", "Asia", "agua", 663, 332);
        loadCountry("Irak", "#4975E0", "Asia", "agua", 567, 289);
        loadCountry("Iran", "#4BAFC0", "Asia", "agua", 583, 215);
        loadCountry("Irlanda", "#4DE9A0", "Europa", "agua", 368, 195);
        loadCountry("Isla Victoria", "#502380", "Norteamerica", "agua", 158, 49);
        loadCountry("Islandia", "#525D60", "Europa", "agua", 362, 125);
        loadCountry("Israel", "#549740", "Asia", "agua", 593, 312);
        loadCountry("Italia", "#56D120", "Europa", "agua", 453, 300);
        loadCountry("Jamaica", "#590B00", "Centroamerica", "agua", 222, 315);
        loadCountry("Japon", "#5B44E0", "Asia", "agua", 763, 184);
        loadCountry("Kamtchatka", "#5D7EC0", "Asia", "agua", 695, 125);
        loadCountry("Labrador", "#5FB8A0", "Norteamerica", "agua", 203, 80);
        loadCountry("Las Vegas", "#61F280", "Norteamerica", "canje", 83, 201);
        loadCountry("Madagascar", "#642C60", "Africa", "agua", 552, 491);
        loadCountry("Malasia", "#666640", "Asia", "agua", 676, 265);
        loadCountry("Mauritania", "#68A020", "Africa", "canje", 517, 466);
        loadCountry("Mexico", "#6ADA00", "Centroamerica", "agua", 120, 280);
        loadCountry("Nicaragua", "#6D13E0", "Centroamerica", "agua", 163, 341);
        loadCountry("Nigeria", "#6F4DC0", "Africa", "tierra", 446, 449);
        loadCountry("Noruega", "#7187A0", "Europa", "tierra", 450, 120);
        loadCountry("Nueva York", "#73C180", "Norteamerica", "tierra", 228, 131);
        loadCountry("Nueva Zelandia", "#75FB60", "Oceania", "tierra", 671, 555);
        loadCountry("Oregon", "#783540", "Norteamerica", "tierra", 92, 160);
        loadCountry("Paraguay", "#7A6F20", "Sudamerica", "tierra", 185, 474);
        loadCountry("Polonia", "#7CA900", "Europa", "canje", 506, 194);
        loadCountry("Portugal", "#7EE2E0", "Europa", "tierra", 344, 305);
        loadCountry("Rusia", "#811CC0", "Asia", "tierra", 601, 153);
        loadCountry("Sahara", "#8356A0", "Africa", "tierra", 390, 397);
        loadCountry("Serbia", "#859080", "Europa", "tierra", 489, 234);
        loadCountry("Siberia", "#87CA60", "Asia", "tierra", 617, 56);
        loadCountry("Sudafrica", "#8A0440", "Africa", "tierra", 494, 500);
        loadCountry("Sumatra", "#8C3E20", "Oceania", "tierra", 653, 422);
        loadCountry("Tasmania", "#8E7800", "Oceania", "tierra", 712, 536);
        loadCountry("Terranova", "#90B1E0", "Norteamerica", "tierra", 150, 152);
        loadCountry("Tonga", "#92EBC0", "Oceania", "tierra", 765, 426);
        loadCountry("Turquia", "#9525A0", "Asia", "tierra", 628, 276);
        loadCountry("Ucrania", "#975F80", "Europa", "tierra", 561, 135);
        loadCountry("Uruguay", "#9BD340", "Sudamerica", "tierra", 202, 503);
        loadCountry("Venezuela", "#9E0D20", "Sudamerica", "tierra", 197, 394);
        loadCountry("Vietnam", "#A04700", "Asia", "tierra", 718, 311);
    }

    private static void saveObject(Object object, String path) {
        Archive archive = new Archive(path);
        archive.writeObject(object);
    }

    private static void createContinents() {
        addContienent("Norteamerica", "canje", 6);
        addContienent("Centroamerica", "aire", 3);
        addContienent("Sudamerica", "aireagua", 4);
        addContienent("Europa", "canje", 8);
        addContienent("Africa", "tierraagua", 4);
        addContienent("Asia", "canje", 8);
        addContienent("Oceania", "tierra", 3);

    }

    private static void addContienent(String name, String tipo, int armies) {
        int[] typeValues = new int[1];
        if (tipo.compareToIgnoreCase("aire") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.AIR;
        } else if (tipo.compareToIgnoreCase("agua") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.WATER;
        } else if (tipo.compareToIgnoreCase("tierra") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.EARTH;
        } else if (tipo.compareToIgnoreCase("canje") == 0) {
            typeValues = new int[3];
            typeValues[0] = CardType.AIR;
            typeValues[1] = CardType.EARTH;
            typeValues[2] = CardType.WATER;
        } else if (tipo.compareToIgnoreCase("comodin") == 0) {
            typeValues = new int[1];
            typeValues[0] = CardType.JOKER;
        } else if (tipo.compareToIgnoreCase("aireagua") == 0) {
            typeValues = new int[2];
            typeValues[0] = CardType.AIR;
            typeValues[1] = CardType.WATER;
        } else if (tipo.compareToIgnoreCase("tierraagua") == 0) {
            typeValues = new int[2];
            typeValues[0] = CardType.EARTH;
            typeValues[1] = CardType.WATER;
        }
        CardType type = new CardType(typeValues);
        Roster<Country> c = new Roster<Country>();
        Continent continent = new Continent(name, type, c, armies);
        continents.addInOrder(continent);
        System.out.println("Added " + continent.toString() + " to continents");
    }

    private static void continentstoString() {
        System.out.println("\n.\n.\n.\n.");
        int n = 1;
        for (int i = 0; i < continents.count(); i++) {
            System.out.println((i + 1) + " - " + continents.getElementInPosition(i).getName());
            for (int j = 0; j < continents.getElementInPosition(i).getCountries().count(); j++) {
                System.out.println("\t" + (j + 1) + " - (" + n + ")" + continents.getElementInPosition(i).getCountries().getElementInPosition(j).getName());
                n++;
            }
        }
    }

    public static void setRelations() throws Exception {
        getCountryByName("Alaska").getSeaBorderingCountries().addInOrder(getCountryByName("Chukchi"));
        getCountryByName("Alaska").getSeaBorderingCountries().addInOrder(getCountryByName("Kamtchatka"));
        getCountryByName("Alaska").getLandBorderingCountries().addInOrder(getCountryByName("Canada"));
        getCountryByName("Albania").getLandBorderingCountries().addInOrder(getCountryByName("Irak"));
        getCountryByName("Albania").getLandBorderingCountries().addInOrder(getCountryByName("Ucrania"));
        getCountryByName("Albania").getLandBorderingCountries().addInOrder(getCountryByName("Polonia"));
        getCountryByName("Alemania").getLandBorderingCountries().addInOrder(getCountryByName("Italia"));
        getCountryByName("Alemania").getLandBorderingCountries().addInOrder(getCountryByName("Francia"));
        getCountryByName("Alemania").getLandBorderingCountries().addInOrder(getCountryByName("Croacia"));
        getCountryByName("Alemania").getLandBorderingCountries().addInOrder(getCountryByName("Serbia"));
        getCountryByName("Alemania").getLandBorderingCountries().addInOrder(getCountryByName("Polonia"));
        getCountryByName("Alemania").getSeaBorderingCountries().addInOrder(getCountryByName("Gran Bretana"));
        getCountryByName("Angola").getLandBorderingCountries().addInOrder(getCountryByName("Etiopia"));
        getCountryByName("Angola").getLandBorderingCountries().addInOrder(getCountryByName("Nigeria"));
        getCountryByName("Angola").getLandBorderingCountries().addInOrder(getCountryByName("Mauritania"));
        getCountryByName("Arabia").getLandBorderingCountries().addInOrder(getCountryByName("Israel"));
        getCountryByName("Argentina").getLandBorderingCountries().addInOrder(getCountryByName("Uruguay"));
        getCountryByName("Argentina").getLandBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Argentina").getLandBorderingCountries().addInOrder(getCountryByName("Paraguay"));
        getCountryByName("Argentina").getLandBorderingCountries().addInOrder(getCountryByName("Bolivia"));
        getCountryByName("Argentina").getLandBorderingCountries().addInOrder(getCountryByName("Chile"));
        getCountryByName("Australia").getSeaBorderingCountries().addInOrder(getCountryByName("Tasmania"));
        getCountryByName("Australia").getSeaBorderingCountries().addInOrder(getCountryByName("Chile"));
        getCountryByName("Australia").getSeaBorderingCountries().addInOrder(getCountryByName("Tonga"));
        getCountryByName("Australia").getSeaBorderingCountries().addInOrder(getCountryByName("Filipinas"));
        getCountryByName("Australia").getSeaBorderingCountries().addInOrder(getCountryByName("Sumatra"));
        getCountryByName("Bielorrusia").getLandBorderingCountries().addInOrder(getCountryByName("Ucrania"));
        getCountryByName("Bielorrusia").getLandBorderingCountries().addInOrder(getCountryByName("Polonia"));
        getCountryByName("Bielorrusia").getLandBorderingCountries().addInOrder(getCountryByName("Finlandia"));
        getCountryByName("Bolivia").getLandBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Bolivia").getLandBorderingCountries().addInOrder(getCountryByName("Paraguay"));
        getCountryByName("Bolivia").getLandBorderingCountries().addInOrder(getCountryByName("Argentina"));
        getCountryByName("Bolivia").getLandBorderingCountries().addInOrder(getCountryByName("Chile"));
        getCountryByName("Brazil").getLandBorderingCountries().addInOrder(getCountryByName("Venezuela"));
        getCountryByName("Brazil").getLandBorderingCountries().addInOrder(getCountryByName("Colombia"));
        getCountryByName("Brazil").getLandBorderingCountries().addInOrder(getCountryByName("Chile"));
        getCountryByName("Brazil").getLandBorderingCountries().addInOrder(getCountryByName("Bolivia"));
        getCountryByName("Brazil").getLandBorderingCountries().addInOrder(getCountryByName("Paraguay"));
        getCountryByName("Brazil").getLandBorderingCountries().addInOrder(getCountryByName("Uruguay"));
        getCountryByName("Brazil").getLandBorderingCountries().addInOrder(getCountryByName("Argentina"));
        getCountryByName("Brazil").getSeaBorderingCountries().addInOrder(getCountryByName("Sahara"));
        getCountryByName("California").getSeaBorderingCountries().addInOrder(getCountryByName("Tonga"));
        getCountryByName("California").getLandBorderingCountries().addInOrder(getCountryByName("Mexico"));
        getCountryByName("California").getLandBorderingCountries().addInOrder(getCountryByName("Florida"));
        getCountryByName("California").getLandBorderingCountries().addInOrder(getCountryByName("Las Vegas"));
        getCountryByName("Canada").getLandBorderingCountries().addInOrder(getCountryByName("Alaska"));
        getCountryByName("Canada").getLandBorderingCountries().addInOrder(getCountryByName("Oregon"));
        getCountryByName("Canada").getLandBorderingCountries().addInOrder(getCountryByName("Terranova"));
        getCountryByName("Canada").getSeaBorderingCountries().addInOrder(getCountryByName("Isla Victoria"));
        getCountryByName("Chechenia").getLandBorderingCountries().addInOrder(getCountryByName("Siberia"));
        getCountryByName("Chechenia").getLandBorderingCountries().addInOrder(getCountryByName("Rusia"));
        getCountryByName("Chechenia").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Chicago").getLandBorderingCountries().addInOrder(getCountryByName("Florida"));
        getCountryByName("Chicago").getLandBorderingCountries().addInOrder(getCountryByName("Las Vegas"));
        getCountryByName("Chicago").getLandBorderingCountries().addInOrder(getCountryByName("Oregon"));
        getCountryByName("Chicago").getLandBorderingCountries().addInOrder(getCountryByName("Terranova"));
        getCountryByName("Chicago").getLandBorderingCountries().addInOrder(getCountryByName("Nueva York"));
        getCountryByName("Chile").getLandBorderingCountries().addInOrder(getCountryByName("Colombia"));
        getCountryByName("Chile").getLandBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Chile").getLandBorderingCountries().addInOrder(getCountryByName("Bolivia"));
        getCountryByName("Chile").getLandBorderingCountries().addInOrder(getCountryByName("Argentina"));
        getCountryByName("Chile").getSeaBorderingCountries().addInOrder(getCountryByName("Australia"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Siberia"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Chechenia"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Rusia"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Turquia"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("India"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Malasia"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Corea"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Kamtchatka"));
        getCountryByName("China").getLandBorderingCountries().addInOrder(getCountryByName("Chukchi"));
        getCountryByName("Chukchi").getSeaBorderingCountries().addInOrder(getCountryByName("Alaska"));
        getCountryByName("Chukchi").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Chukchi").getLandBorderingCountries().addInOrder(getCountryByName("Kamtchatka"));
        getCountryByName("Colombia").getLandBorderingCountries().addInOrder(getCountryByName("Chile"));
        getCountryByName("Colombia").getLandBorderingCountries().addInOrder(getCountryByName("Nicaragua"));
        getCountryByName("Colombia").getLandBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Colombia").getLandBorderingCountries().addInOrder(getCountryByName("Venezuela"));
        getCountryByName("Corea").getSeaBorderingCountries().addInOrder(getCountryByName("Japon"));
        getCountryByName("Corea").getLandBorderingCountries().addInOrder(getCountryByName("Kamtchatka"));
        getCountryByName("Corea").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Corea").getLandBorderingCountries().addInOrder(getCountryByName("Malasia"));
        getCountryByName("Corea").getLandBorderingCountries().addInOrder(getCountryByName("Vietnam"));
        getCountryByName("Croacia").getLandBorderingCountries().addInOrder(getCountryByName("Polonia"));
        getCountryByName("Croacia").getLandBorderingCountries().addInOrder(getCountryByName("Serbia"));
        getCountryByName("Croacia").getLandBorderingCountries().addInOrder(getCountryByName("Alemania"));
        getCountryByName("Croacia").getLandBorderingCountries().addInOrder(getCountryByName("Italia"));
        getCountryByName("Cuba").getSeaBorderingCountries().addInOrder(getCountryByName("Jamaica"));
        getCountryByName("Cuba").getSeaBorderingCountries().addInOrder(getCountryByName("Honduras"));
        getCountryByName("Cuba").getSeaBorderingCountries().addInOrder(getCountryByName("Mexico"));
        getCountryByName("Cuba").getSeaBorderingCountries().addInOrder(getCountryByName("Florida"));
        getCountryByName("Egipto").getLandBorderingCountries().addInOrder(getCountryByName("Sahara"));
        getCountryByName("Egipto").getLandBorderingCountries().addInOrder(getCountryByName("Etiopia"));
        getCountryByName("Egipto").getSeaBorderingCountries().addInOrder(getCountryByName("Polonia"));
        getCountryByName("Egipto").getSeaBorderingCountries().addInOrder(getCountryByName("Irak"));
        getCountryByName("Egipto").getSeaBorderingCountries().addInOrder(getCountryByName("Israel"));
        getCountryByName("El Salvador").getLandBorderingCountries().addInOrder(getCountryByName("Nicaragua"));
        getCountryByName("El Salvador").getLandBorderingCountries().addInOrder(getCountryByName("Honduras"));
        getCountryByName("Espana").getLandBorderingCountries().addInOrder(getCountryByName("Portugal"));
        getCountryByName("Espana").getLandBorderingCountries().addInOrder(getCountryByName("Francia"));
        getCountryByName("Espana").getSeaBorderingCountries().addInOrder(getCountryByName("Sahara"));
        getCountryByName("Etiopia").getLandBorderingCountries().addInOrder(getCountryByName("Sahara"));
        getCountryByName("Etiopia").getLandBorderingCountries().addInOrder(getCountryByName("Egipto"));
        getCountryByName("Etiopia").getLandBorderingCountries().addInOrder(getCountryByName("Nigeria"));
        getCountryByName("Etiopia").getLandBorderingCountries().addInOrder(getCountryByName("Angola"));
        getCountryByName("Filipinas").getSeaBorderingCountries().addInOrder(getCountryByName("Australia"));
        getCountryByName("Filipinas").getSeaBorderingCountries().addInOrder(getCountryByName("Vietnam"));
        getCountryByName("Finlandia").getLandBorderingCountries().addInOrder(getCountryByName("Bielorrusia"));
        getCountryByName("Finlandia").getLandBorderingCountries().addInOrder(getCountryByName("Noruega"));
        getCountryByName("Florida").getLandBorderingCountries().addInOrder(getCountryByName("California"));
        getCountryByName("Florida").getLandBorderingCountries().addInOrder(getCountryByName("Las Vegas"));
        getCountryByName("Florida").getLandBorderingCountries().addInOrder(getCountryByName("Chicago"));
        getCountryByName("Florida").getSeaBorderingCountries().addInOrder(getCountryByName("Cuba"));
        getCountryByName("Francia").getLandBorderingCountries().addInOrder(getCountryByName("Alemania"));
        getCountryByName("Francia").getLandBorderingCountries().addInOrder(getCountryByName("Italia"));
        getCountryByName("Francia").getLandBorderingCountries().addInOrder(getCountryByName("Espana"));
        getCountryByName("Gran Bretana").getSeaBorderingCountries().addInOrder(getCountryByName("Irlanda"));
        getCountryByName("Gran Bretana").getSeaBorderingCountries().addInOrder(getCountryByName("Alemania"));
        getCountryByName("Gran Bretana").getSeaBorderingCountries().addInOrder(getCountryByName("Portugal"));
        getCountryByName("Groenlandia").getSeaBorderingCountries().addInOrder(getCountryByName("Islandia"));
        getCountryByName("Groenlandia").getSeaBorderingCountries().addInOrder(getCountryByName("Nueva York"));
        getCountryByName("Groenlandia").getSeaBorderingCountries().addInOrder(getCountryByName("Labrador"));
        getCountryByName("Groenlandia").getSeaBorderingCountries().addInOrder(getCountryByName("Isla Victoria"));
        getCountryByName("Honduras").getLandBorderingCountries().addInOrder(getCountryByName("Mexico"));
        getCountryByName("Honduras").getLandBorderingCountries().addInOrder(getCountryByName("El Salvador"));
        getCountryByName("Honduras").getSeaBorderingCountries().addInOrder(getCountryByName("Cuba"));
        getCountryByName("Turquia").getLandBorderingCountries().addInOrder(getCountryByName("India"));
        getCountryByName("India").getLandBorderingCountries().addInOrder(getCountryByName("Turquia"));
        getCountryByName("India").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Malasia").getLandBorderingCountries().addInOrder(getCountryByName("India"));
        getCountryByName("India").getLandBorderingCountries().addInOrder(getCountryByName("Malasia"));
        getCountryByName("Vietnam").getLandBorderingCountries().addInOrder(getCountryByName("India"));
        getCountryByName("India").getLandBorderingCountries().addInOrder(getCountryByName("Vietnam"));
        getCountryByName("India").getSeaBorderingCountries().addInOrder(getCountryByName("Sumatra"));
        getCountryByName("Sumatra").getSeaBorderingCountries().addInOrder(getCountryByName("India"));
        getCountryByName("Irak").getLandBorderingCountries().addInOrder(getCountryByName("Albania"));
        getCountryByName("Iran").getLandBorderingCountries().addInOrder(getCountryByName("Irak"));
        getCountryByName("Irak").getLandBorderingCountries().addInOrder(getCountryByName("Iran"));
        getCountryByName("Turquia").getLandBorderingCountries().addInOrder(getCountryByName("Irak"));
        getCountryByName("Irak").getLandBorderingCountries().addInOrder(getCountryByName("Turquia"));
        getCountryByName("Israel").getLandBorderingCountries().addInOrder(getCountryByName("Irak"));
        getCountryByName("Irak").getLandBorderingCountries().addInOrder(getCountryByName("Israel"));
        getCountryByName("Irak").getSeaBorderingCountries().addInOrder(getCountryByName("Egipto"));
        getCountryByName("Ucrania").getLandBorderingCountries().addInOrder(getCountryByName("Iran"));
        getCountryByName("Iran").getLandBorderingCountries().addInOrder(getCountryByName("Ucrania"));
        getCountryByName("Rusia").getLandBorderingCountries().addInOrder(getCountryByName("Iran"));
        getCountryByName("Iran").getLandBorderingCountries().addInOrder(getCountryByName("Rusia"));
        getCountryByName("Turquia").getLandBorderingCountries().addInOrder(getCountryByName("Iran"));
        getCountryByName("Iran").getLandBorderingCountries().addInOrder(getCountryByName("Turquia"));
        getCountryByName("Irlanda").getSeaBorderingCountries().addInOrder(getCountryByName("Gran Bretana"));
        getCountryByName("Irlanda").getSeaBorderingCountries().addInOrder(getCountryByName("Islandia"));
        getCountryByName("Islandia").getSeaBorderingCountries().addInOrder(getCountryByName("Irlanda"));
        getCountryByName("Isla Victoria").getSeaBorderingCountries().addInOrder(getCountryByName("Canada"));
        getCountryByName("Isla Victoria").getSeaBorderingCountries().addInOrder(getCountryByName("Groenlandia"));
        getCountryByName("Islandia").getSeaBorderingCountries().addInOrder(getCountryByName("Noruega"));
        getCountryByName("Noruega").getSeaBorderingCountries().addInOrder(getCountryByName("Islandia"));
        getCountryByName("Islandia").getSeaBorderingCountries().addInOrder(getCountryByName("Groenlandia"));
        getCountryByName("Israel").getLandBorderingCountries().addInOrder(getCountryByName("Arabia"));
        getCountryByName("Turquia").getLandBorderingCountries().addInOrder(getCountryByName("Israel"));
        getCountryByName("Israel").getLandBorderingCountries().addInOrder(getCountryByName("Turquia"));
        getCountryByName("Israel").getSeaBorderingCountries().addInOrder(getCountryByName("Egipto"));
        getCountryByName("Italia").getLandBorderingCountries().addInOrder(getCountryByName("Francia"));
        getCountryByName("Italia").getLandBorderingCountries().addInOrder(getCountryByName("Alemania"));
        getCountryByName("Italia").getLandBorderingCountries().addInOrder(getCountryByName("Croacia"));
        getCountryByName("Jamaica").getSeaBorderingCountries().addInOrder(getCountryByName("Cuba"));
        getCountryByName("Jamaica").getSeaBorderingCountries().addInOrder(getCountryByName("Nicaragua"));
        getCountryByName("Nicaragua").getSeaBorderingCountries().addInOrder(getCountryByName("Jamaica"));
        getCountryByName("Japon").getSeaBorderingCountries().addInOrder(getCountryByName("Corea"));
        getCountryByName("Japon").getSeaBorderingCountries().addInOrder(getCountryByName("Kamtchatka"));
        getCountryByName("Kamtchatka").getSeaBorderingCountries().addInOrder(getCountryByName("Japon"));
        getCountryByName("Kamtchatka").getSeaBorderingCountries().addInOrder(getCountryByName("Alaska"));
        getCountryByName("Kamtchatka").getLandBorderingCountries().addInOrder(getCountryByName("Chukchi"));
        getCountryByName("Kamtchatka").getLandBorderingCountries().addInOrder(getCountryByName("Corea"));
        getCountryByName("Kamtchatka").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Labrador").getSeaBorderingCountries().addInOrder(getCountryByName("Terranova"));
        getCountryByName("Terranova").getSeaBorderingCountries().addInOrder(getCountryByName("Labrador"));
        getCountryByName("Labrador").getSeaBorderingCountries().addInOrder(getCountryByName("Groenlandia"));
        getCountryByName("Las Vegas").getLandBorderingCountries().addInOrder(getCountryByName("California"));
        getCountryByName("Las Vegas").getLandBorderingCountries().addInOrder(getCountryByName("Florida"));
        getCountryByName("Las Vegas").getLandBorderingCountries().addInOrder(getCountryByName("Chicago"));
        getCountryByName("Oregon").getLandBorderingCountries().addInOrder(getCountryByName("Las Vegas"));
        getCountryByName("Las Vegas").getLandBorderingCountries().addInOrder(getCountryByName("Oregon"));
        getCountryByName("Madagascar").getSeaBorderingCountries().addInOrder(getCountryByName("Sudafrica"));
        getCountryByName("Sudafrica").getSeaBorderingCountries().addInOrder(getCountryByName("Madagascar"));
        getCountryByName("Madagascar").getSeaBorderingCountries().addInOrder(getCountryByName("Mauritania"));
        getCountryByName("Mauritania").getSeaBorderingCountries().addInOrder(getCountryByName("Madagascar"));
        getCountryByName("Madagascar").getSeaBorderingCountries().addInOrder(getCountryByName("Egipto"));
        getCountryByName("Egipto").getSeaBorderingCountries().addInOrder(getCountryByName("Madagascar"));
        getCountryByName("Malasia").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Malasia").getLandBorderingCountries().addInOrder(getCountryByName("Corea"));
        getCountryByName("Vietnam").getLandBorderingCountries().addInOrder(getCountryByName("Malasia"));
        getCountryByName("Malasia").getLandBorderingCountries().addInOrder(getCountryByName("Vietnam"));
        getCountryByName("Mauritania").getLandBorderingCountries().addInOrder(getCountryByName("Angola"));
        getCountryByName("Nigeria").getLandBorderingCountries().addInOrder(getCountryByName("Mauritania"));
        getCountryByName("Mauritania").getLandBorderingCountries().addInOrder(getCountryByName("Nigeria"));
        getCountryByName("Sudafrica").getLandBorderingCountries().addInOrder(getCountryByName("Mauritania"));
        getCountryByName("Mauritania").getLandBorderingCountries().addInOrder(getCountryByName("Sudafrica"));
        getCountryByName("Mexico").getLandBorderingCountries().addInOrder(getCountryByName("Honduras"));
        getCountryByName("Mexico").getSeaBorderingCountries().addInOrder(getCountryByName("Cuba"));
        getCountryByName("Mexico").getLandBorderingCountries().addInOrder(getCountryByName("California"));
        getCountryByName("Nicaragua").getLandBorderingCountries().addInOrder(getCountryByName("El Salvador"));
        getCountryByName("Nicaragua").getLandBorderingCountries().addInOrder(getCountryByName("Colombia"));
        getCountryByName("Nigeria").getSeaBorderingCountries().addInOrder(getCountryByName("Uruguay"));
        getCountryByName("Uruguay").getSeaBorderingCountries().addInOrder(getCountryByName("Nigeria"));
        getCountryByName("Sahara").getLandBorderingCountries().addInOrder(getCountryByName("Nigeria"));
        getCountryByName("Nigeria").getLandBorderingCountries().addInOrder(getCountryByName("Sahara"));
        getCountryByName("Nigeria").getLandBorderingCountries().addInOrder(getCountryByName("Etiopia"));
        getCountryByName("Nigeria").getLandBorderingCountries().addInOrder(getCountryByName("Angola"));
        getCountryByName("Sudafrica").getLandBorderingCountries().addInOrder(getCountryByName("Nigeria"));
        getCountryByName("Nigeria").getLandBorderingCountries().addInOrder(getCountryByName("Sudafrica"));
        getCountryByName("Noruega").getLandBorderingCountries().addInOrder(getCountryByName("Finlandia"));
        getCountryByName("Nueva York").getSeaBorderingCountries().addInOrder(getCountryByName("Groenlandia"));
        getCountryByName("Nueva York").getLandBorderingCountries().addInOrder(getCountryByName("Chicago"));
        getCountryByName("Nueva Zelandia").getSeaBorderingCountries().addInOrder(getCountryByName("Tasmania"));
        getCountryByName("Tasmania").getSeaBorderingCountries().addInOrder(getCountryByName("Nueva Zelandia"));
        getCountryByName("Oregon").getLandBorderingCountries().addInOrder(getCountryByName("Chicago"));
        getCountryByName("Terranova").getLandBorderingCountries().addInOrder(getCountryByName("Oregon"));
        getCountryByName("Oregon").getLandBorderingCountries().addInOrder(getCountryByName("Terranova"));
        getCountryByName("Oregon").getLandBorderingCountries().addInOrder(getCountryByName("Canada"));
        getCountryByName("Paraguay").getLandBorderingCountries().addInOrder(getCountryByName("Argentina"));
        getCountryByName("Paraguay").getLandBorderingCountries().addInOrder(getCountryByName("Bolivia"));
        getCountryByName("Paraguay").getLandBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Polonia").getLandBorderingCountries().addInOrder(getCountryByName("Bielorrusia"));
        getCountryByName("Ucrania").getLandBorderingCountries().addInOrder(getCountryByName("Polonia"));
        getCountryByName("Polonia").getLandBorderingCountries().addInOrder(getCountryByName("Ucrania"));
        getCountryByName("Polonia").getLandBorderingCountries().addInOrder(getCountryByName("Albania"));
        getCountryByName("Polonia").getLandBorderingCountries().addInOrder(getCountryByName("Alemania"));
        getCountryByName("Serbia").getLandBorderingCountries().addInOrder(getCountryByName("Polonia"));
        getCountryByName("Polonia").getLandBorderingCountries().addInOrder(getCountryByName("Serbia"));
        getCountryByName("Polonia").getLandBorderingCountries().addInOrder(getCountryByName("Croacia"));
        getCountryByName("Polonia").getSeaBorderingCountries().addInOrder(getCountryByName("Egipto"));
        getCountryByName("Portugal").getLandBorderingCountries().addInOrder(getCountryByName("Espana"));
        getCountryByName("Portugal").getSeaBorderingCountries().addInOrder(getCountryByName("Gran Bretana"));
        getCountryByName("Ucrania").getLandBorderingCountries().addInOrder(getCountryByName("Rusia"));
        getCountryByName("Rusia").getLandBorderingCountries().addInOrder(getCountryByName("Ucrania"));
        getCountryByName("Turquia").getLandBorderingCountries().addInOrder(getCountryByName("Rusia"));
        getCountryByName("Rusia").getLandBorderingCountries().addInOrder(getCountryByName("Turquia"));
        getCountryByName("Rusia").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Rusia").getLandBorderingCountries().addInOrder(getCountryByName("Chechenia"));
        getCountryByName("Siberia").getLandBorderingCountries().addInOrder(getCountryByName("Rusia"));
        getCountryByName("Rusia").getLandBorderingCountries().addInOrder(getCountryByName("Siberia"));
        getCountryByName("Sahara").getSeaBorderingCountries().addInOrder(getCountryByName("Espana"));
        getCountryByName("Sahara").getSeaBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Sahara").getLandBorderingCountries().addInOrder(getCountryByName("Egipto"));
        getCountryByName("Sahara").getLandBorderingCountries().addInOrder(getCountryByName("Etiopia"));
        getCountryByName("Serbia").getLandBorderingCountries().addInOrder(getCountryByName("Alemania"));
        getCountryByName("Serbia").getLandBorderingCountries().addInOrder(getCountryByName("Croacia"));
        getCountryByName("Siberia").getLandBorderingCountries().addInOrder(getCountryByName("Chechenia"));
        getCountryByName("Siberia").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Sumatra").getSeaBorderingCountries().addInOrder(getCountryByName("Australia"));
        getCountryByName("Terranova").getLandBorderingCountries().addInOrder(getCountryByName("Canada"));
        getCountryByName("Terranova").getLandBorderingCountries().addInOrder(getCountryByName("Chicago"));
        getCountryByName("Tonga").getSeaBorderingCountries().addInOrder(getCountryByName("California"));
        getCountryByName("Tonga").getSeaBorderingCountries().addInOrder(getCountryByName("Australia"));
        getCountryByName("Turquia").getLandBorderingCountries().addInOrder(getCountryByName("China"));
        getCountryByName("Ucrania").getLandBorderingCountries().addInOrder(getCountryByName("Albania"));
        getCountryByName("Ucrania").getLandBorderingCountries().addInOrder(getCountryByName("Bielorrusia"));
        getCountryByName("Uruguay").getLandBorderingCountries().addInOrder(getCountryByName("Argentina"));
        getCountryByName("Uruguay").getLandBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Venezuela").getLandBorderingCountries().addInOrder(getCountryByName("Brazil"));
        getCountryByName("Venezuela").getLandBorderingCountries().addInOrder(getCountryByName("Colombia"));
        getCountryByName("Vietnam").getLandBorderingCountries().addInOrder(getCountryByName("Corea"));
        getCountryByName("Vietnam").getSeaBorderingCountries().addInOrder(getCountryByName("Filipinas"));
    }

    public static void createObjectives() throws Exception {
        Objective objective;
        ObjectiveCard card;
        Roster<Objective> objectives = new Roster<Objective>();

        //1.	Ocupar Europa y Sudamerica.
        objective = new ObjectiveConquer(1, getContinentByName("Europa"), 16);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(2, getContinentByName("Sudamerica"), 8);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(1, objectives);
        objectiveCards.addInOrder(card);

        objectives = new Roster<Objective>();


        //2.	Ocupar Norteamerica, Oceania y 5 paises de Africa.
        objective = new ObjectiveConquer(3, getContinentByName("Norteamerica"), 12);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(4, getContinentByName("Oceania"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(5, getContinentByName("Africa"), 5);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(2, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();

        //3.	Ocupar Asia y Centroamerica.
        objective = new ObjectiveConquer(6, getContinentByName("Asia"), 16);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(7, getContinentByName("Centroamerica"), 6);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(3, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();


        //4.Ocupar Norteamerica, 8 paises de Asia y 4 de Europa.
        objective = new ObjectiveConquer(8, getContinentByName("Norteamerica"), 12);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(9, getContinentByName("Asia"), 8);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(10, getContinentByName("Europa"), 4);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(4, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();

        //5.Ocupar 4 paises de Norteamerica, 4 de Europa, 4 de Asia, 3 de
        //Sudamerica, 3 de Centroamerica 3 de Africa y 3 de Oceania.
        objective = new ObjectiveConquer(11, getContinentByName("Norteamerica"), 4);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(12, getContinentByName("Asia"), 4);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(13, getContinentByName("Europa"), 4);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(14, getContinentByName("Centroamerica"), 3);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(15, getContinentByName("Africa"), 3);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(16, getContinentByName("Sudamerica"), 3);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(17, getContinentByName("Oceania"), 3);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(5, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();

        //6.Ocupar Oceania, 6 paises de Asia, 6 de Africa y 6 de Norteamerica.
        objective = new ObjectiveConquer(18, getContinentByName("Norteamerica"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(19, getContinentByName("Africa"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(20, getContinentByName("Asia"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(21, getContinentByName("Oceania"), 6);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(6, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();


        //7.    Ocupar Centroamerica, 6 paises de Sudamerica, 6 de Europa y 6 de Asia.
        objective = new ObjectiveConquer(22, getContinentByName("Centroamerica"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(23, getContinentByName("Sudamerica"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(24, getContinentByName("Asia"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(25, getContinentByName("Europa"), 6);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(7, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();

        //8.    Ocupar Sudamerica, Africa y 8 paises de Asia.
        objective = new ObjectiveConquer(26, getContinentByName("Sudamerica"), 8);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(27, getContinentByName("Asia"), 8);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(28, getContinentByName("Europa"), 8);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(8, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();

        //9.    Ocupar Oceania, Africa, 4 paises de Centroamerica y 4 de Asia.
        objective = new ObjectiveConquer(29, getContinentByName("Oceania"), 6);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(30, getContinentByName("Africa"), 8);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(31, getContinentByName("Asia"), 4);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(32, getContinentByName("Centroamerica"), 4);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(9, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();


        //10.   Ocupar Europa, 4 paises de Asia y 4 paises de Sudamerica.
        objective = new ObjectiveConquer(33, getContinentByName("Europa"), 16);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(34, getContinentByName("Asia"), 4);
        objectives.addInOrder(objective);
        objective = new ObjectiveConquer(35, getContinentByName("Sudamerica"), 4);
        objectives.addInOrder(objective);
        card = new ObjectiveCard(10, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();




        //12.   Ocupar 35 paises en cualquier lugar del mapa.
        //implementado en la logica


        //13.   Destruir al ejercito Blanco; de ser posible, al jugador de la derecha.
        objective = new ObjectiveEliminate(36, new Color(Color.WHITE));
        objectives.addInOrder(objective);
        card = new ObjectiveCard(13, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();
        //14.   Destruir al ejercito Negro; de ser posible, al jugador de la derecha.
        objective = new ObjectiveEliminate(36, new Color(Color.BLACK));
        objectives.addInOrder(objective);
        card = new ObjectiveCard(14, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();
        //15.   Destruir al ejercito Rojo; de ser posible, al jugador de la derecha.
        objective = new ObjectiveEliminate(36, new Color(Color.RED));
        objectives.addInOrder(objective);
        card = new ObjectiveCard(15, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();
        //16.   Destruir al ejercito Azul; de ser posible, al jugador de la derecha.
        objective = new ObjectiveEliminate(36, new Color(Color.BLUE));
        objectives.addInOrder(objective);
        card = new ObjectiveCard(16, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();
        //17.   Destruir al ejercito Amarillo; de ser posible, al jugador de la derecha.
        objective = new ObjectiveEliminate(36, new Color(Color.YELLOW));
        objectives.addInOrder(objective);
        card = new ObjectiveCard(17, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();
        //18.   Destruir al ejercito Verde; de ser posible, al jugador de la derecha.
        objective = new ObjectiveEliminate(36, new Color(Color.GREEN));
        objectives.addInOrder(objective);
        card = new ObjectiveCard(18, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();
        //19.   Destruir al jugador de la izquierda.
        objective = new ObjectiveEliminate(36, new Color(""));
        objectives.addInOrder(objective);
        card = new ObjectiveCard(19, objectives);
        objectiveCards.addInOrder(card);
        objectives = new Roster<Objective>();


        for (int i = 0; i < objectiveCards.count(); i++) {
            System.out.println(objectiveCards.getElementInPosition(i).toString());
        }
    }

    public static void createSituation() {

        for (int i = 0; i < 4; i++) {
            situations.addInOrder(new SituationExtraDice("Nieve", "los jugadores atacados "
                    + " se defienden con un dado mas del que les corresponderia"
                    + " de acuerdo con la cantidad de ejercitos que posean", false, 1));
        }
        for (int i = 0; i < 4; i++) {
            situations.addInOrder(new SituationExtraDice("Viento a Favor", "los jugadores"
                    + " atacantes tiran con un dado mas del que les corresponderia "
                    + "de acuerdo a la cantidad de ejercitos que posean", true, 1));
        }
        for (int i = 0; i < 4; i++) {
            situations.addInOrder(new SituationCrisis("Crisis", "cada jugador debe tirar "
                    + "un dado. El que saque el numero mas bajo, no podra sacar "
                    + "tarjeta de paises por esa vuelta. En caso de empate en el"
                    + " numero mas bajo, ninguno de los jugadores que haya "
                    + "empatado podra sacar tarjeta durante la vuelta, aunque "
                    + "conservara su derecho a incorporar ejercitos, atacar paises"
                    + " ajenos y reagrupar."));
        }
        for (int i = 0; i < 4; i++) {
            situations.addInOrder(new SituationExtraArmies("REFUERZOS EXTRAS", "Todos los "
                    + "jugadores tendran derecho a incorporar una suma extra "
                    + "de ejercitos, igual a la mitad de los paises ocupados"));
        }
        for (int i = 0; i < 4; i++) {
            situations.addInOrder(new SituationBorder("FRONTERAS ABIERTAS", "Solo podran "
                    + "realizarse ataques desde un continente hacia fuera", true));
        }
        for (int i = 0; i < 4; i++) {
            situations.addInOrder(new SituationBorder("FRONTERAS Cerradas", "Solo podran "
                    + "realizarse ataques dentro de las fronteras de "
                    + "cada continente", false));
        }
        situations.addInOrder(new SituationRest("Descanso Azul", "solo podra incorporar ejercitos durante"
                + " su turno, pero no podra atacar ni reagrupar", Color.BLUE));
        situations.addInOrder(new SituationRest("Descanso Negro", "solo podra incorporar ejercitos durante"
                + " su turno, pero no podra atacar ni reagrupar", Color.BLACK));
        situations.addInOrder(new SituationRest("Descanso Blanco", "solo podra incorporar ejercitos durante"
                + " su turno, pero no podra atacar ni reagrupar", Color.WHITE));
        situations.addInOrder(new SituationRest("Descanso Verde", "solo podra incorporar ejercitos durante"
                + " su turno, pero no podra atacar ni reagrupar", Color.GREEN));
        situations.addInOrder(new SituationRest("Descanso Rojo", "solo podra incorporar ejercitos durante"
                + " su turno, pero no podra atacar ni reagrupar", Color.RED));
        situations.addInOrder(new SituationRest("Descanso Amarillo", "solo podra incorporar ejercitos durante"
                + " su turno, pero no podra atacar ni reagrupar", Color.YELLOW));
        for (int i = 0; i < 20; i++) {
            situations.addInOrder(new SituationClassic("Combate Clasico", "El combate se "
                    + "desarrolla normalmente"));
        }
    }
}
